﻿using Crocodile.AbstractLanguage;
using Crocodile.AbstractLanguage.Tree;
using JetBrains.Annotations;



namespace Crocodile.CsharpLanguage.Tree
{

    /// <summary>
    /// C# module (a set of files).
    /// 
    /// Contains a C# program tree,
    /// without formatting and without bindings to source text (no line numbers, positions, etc.).
    /// </summary>
    public class CsModule : AbstractNode
    {

        /// <summary>
        /// C# files.
        /// </summary>
        [NotNull]
        public readonly Nest<CsModule,CsFile> Files;

        /// <summary>
        /// Base (root) namespace for the module.
        /// </summary>
        [CanBeNull]
        public string RootNamespace = null;


        public CsModule()
        {
            Files = new Nest<CsModule, CsFile>(this);
        }
    }
}
